<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>日期对象</title>
</head>

<body>
    <script>
        //日期对象
        //     const date=new Date()//系统默认时间
        //     // const date=new Date('2020-05-01')//指定时间
        //    console.log(date.getFullYear());//获取四位年份
        //    console.log(date.getMonth());//获取月份，值为0~11
        //    console.log(date.getDate());//获取日期，不同月份取值也不相同
        //    console.log(date.getDay());//获取星期，值为0~6
        //    console.log(date.getHours());//获取小时，值为0~23
        //    console.log(date.getMinutes());//获取分钟，值为0~59
        //    console.log(date.getSeconds());//获取秒，值为0~59

        // 日期对象案例：获取时间戳
        // 时间戳是指1970年01月01日00时00分00秒起至现在的总秒数或毫秒数，它是一种特殊的计量时间的方式。
        // 注：ECMAScript 中时间戳是以毫秒计的。
        // const date=new Date()
        // //获取时间戳
        // console.log(date.getTime());
        // //还有一种获取时间戳的方法
        // console.log(+new Date());
        // //还有一种获取时间戳的方法
        // console.log(Date.now());

        // 日期对象案例：获取当前日期和时间的格式化字符串
        //这个函数返回当前日期和时间的格式化字符串，格式为 YYYY-MM-DD HH:mm:ss。
        //     function getFormattedCurrentDateTime() {
        //         const now = new Date()
        //         const year = now.getFullYear()
        //         const month = String(now.getMonth() + 1).padStart(2, '0')
        //         const day = String(now.getDate()).padStart(2, '0')
        //         const hours = String(now.getHours()).padStart(2, '0')
        //         const minutes = String(now.getMinutes()).padStart(2, '0')
        //         const seconds = String(now.getSeconds()).padStart(2, '0')
        //         return `${year}-${month}-${day}-${hours}-${minutes}-${seconds}`
        //     }
        //    console.log(getFormattedCurrentDateTime());

        // 日期对象案例：计算两个日期之间的天数差
        //这个函数接受两个日期字符串（格式为 YYYY-MM-DD），并返回它们之间的天数差。
        // function getDaysBetweenDates(date1,date2) {
        //     const startDate=new Date(date1)
        //     const endDate=new Date(date2)
        //     const timeDifference=endDate.getTime()-startDate.getTime()
        //     const daysDifference=timeDifference/(1000*3600*24)
        //     return  Math.abs(Math.ceil(daysDifference))//Math.abs返回一个数的绝对值
        // }
        // console.log(getDaysBetweenDates('2024-08-01','2024-08-15'));

        // 日期对象案例：获取指定日期所在周的星期一和星期天的日期
        //这个函数接受一个日期字符串（格式为 YYYY-MM-DD），并返回该日期所在周的星期一和星期天的日期。
        // function getweekstartAndEndDates(datestr) {
        //     const date = new Date(datestr)
        //     const datofweek = date.getDay()//获取星期几，0表示星期天
        //     const distanceTomonday = (datofweek + 6) % 7//距离星期一的天数
        //     const distanceTosunday = (7 - datofweek) % 7//距离星期天的天数

        //     const monday = new Date(date)
        //     monday.setDate(date.getDate() - distanceTomonday)
        //     const sunday = new Date(date)
        //     sunday.setDate(date.getDate() + distanceTosunday)

        //     const formatDate = (d) => {
        //         const year = d.getFullYear();
        //         const month = String(d.getMonth() + 1).padStart(2, '0')
        //         const day = String(d.getDate()).padStart(2, '0')
        //         return `${year}-${month}-${day}`
        //     }

        //     return {
        //         monday: formatDate(monday),
        //         sunday: formatDate(sunday)
        //     }
        // }
        // const weekDates=getweekstartAndEndDates('2024-08-14')
        // console.log(weekDates);

        // 日期对象案例：判断一个日期是否为周末
        //这个函数接受一个日期字符串（格式为 YYYY-MM-DD），并返回该日期是否为周末（星期六或星期天）。
        // function isweekend(datestr) {
        //     const date = new Date(datestr);
        //     const dayofweek = date.getDay();
        //     return dayofweek === 0 || dayofweek === 6;
        // }
        // console.log(isweekend('2024-08-17')); // 输出: true (星期六)
        // console.log(isweekend('2024-08-15')); // 输出: false (星期四)

        // 日期对象案例：获取某月的天数
        //这个函数接受一个年份和月份，返回该月的天数。
        // function getDaysInMonth(year, month) {
        //     const date = new Date(year, month, 0); // month 为 0-11，0 表示上个月的最后一天
        //     return date.getDate();
        // }
        // console.log(getDaysInMonth(2024, 8)); // 输出: 31 (2024年8月有31天)
        // console.log(getDaysInMonth(2024, 2)); // 输出: 29 (2024年2月是闰月，有29天)
    </script>
</body>

</html>